﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="AppSettingsData.cs" company="TechBits">
//   Copyright (c) TechBits. All rights reserved.
// </copyright>
// <author>
//   Leandro G. Vacirca
// </author>
// <summary>
//   Defines the AppSettingsData type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace IntelliShortCut.Data
{
    using System;
    using System.ComponentModel;
    using System.Configuration;

    /// <summary>
    /// This class contains the settings of the application.
    /// </summary>
    [Serializable]
    [DefaultProperty("AutoStartWithWindows")]
    public class AppSettingsData
    {
        /// <summary>
        /// Gets or sets a value indicating whether AutoStartWithWindows.
        /// </summary>
        [CategoryAttribute("Advanced"), 
         DescriptionAttribute("Defines if the application starts automatically with Windows."), 
         DefaultSettingValue("True")]
        public bool AutoStartWithWindows { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether SecurityValidation.
        /// </summary>
        [CategoryAttribute("Advanced"),
         DescriptionAttribute("Defines if the application must run a security validation on startup. This is acomplished by checking the integrity of the shortcuts database."),
         DefaultSettingValue("False")]
        public bool SecurityValidation { get; set; }

        /// <summary>
        /// Gets or sets MainWindowOpacity.
        /// </summary>
        [CategoryAttribute("UI"),
         DescriptionAttribute("Sets the opacity percentage of the main window."),
         DefaultSettingValue("85"),]
        public int MainWindowOpacity { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether FirstRun.
        /// </summary>
        [Browsable(false)]
        public bool FirstRun { get; set; }

        /// <summary>
        /// Gets or sets LastSaveDate.
        /// </summary>
        [Browsable(false)]
        public DateTime LastSaveDate { get; set; }

        /// <summary>
        /// Gets or sets ShortcutsCount.
        /// </summary>
        [Browsable(false)]
        public int ShortcutsSavedCount { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether BackUpPeriod.
        /// </summary>
        [Browsable(false)]
        public int BackUpPeriod { get; set; }
    }
}
